package com.suanfa.sort.ti;

/**
 * @author jukg
 * @date 2025/01/06 15:21
 * @description
 * 给定一个大小为 n 的数组 nums ，返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。
 */
public class MajorityElement {
    public static void main(String[] args) {
        int[] nums = {2,2,1,1,1,2,2};
        System.out.println(majorityElement(nums));
    }


    public static int majorityElement(int[] nums) {

        int major = nums[0];
        int count = 1;
        //相同阵营++  不通阵营抵消，抵消完则换阵营
        for(int i=1; i< nums.length; i++){
            if(major == nums[i]){
                count++;
            }else{
                if(count == 0){
                    major = nums[i];
                    count = 1;
                }else {
                    count --;
                }
            }

        }
        return major;
    }
}
